home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / p_aa4re / bb212src / matchi.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-12-08  |  5.0 KB  |  120 lines

  1. (*===========================================================================*)
  2. (* Match a string -- Initialization                                          *)
  3. (*                                                                           *)
  4. (*   Copyright 1988, 1989, 1990 by H. Roy Engehausen.  All rights reserved.  *)
  5. (*                                                                           *)
  6. (*===========================================================================*)
  7.  
  8. (*===========================================================================*)
  9. (* This one time code is executed by TURBO very early to init the variables  *)
  10. (*===========================================================================*)
  11.  
  12. PROCEDURE match_init;
  13.  
  14.   BEGIN;
  15.  
  16.     (*-----------------------------------------------------------------------*)
  17.     (* Branch table                                                          *)
  18.     (*-----------------------------------------------------------------------*)
  19.  
  20.     FILLCHAR(match_branch_table, SIZEOF(match_branch_table), CHAR(br_other));
  21.  
  22.     match_branch_table[ORD('@')] := br_at;
  23.     match_branch_table[ORD('$')] := br_dollar;
  24.     match_branch_table[ORD('"')] := br_dq;
  25.     match_branch_table[ORD('=')] := br_equal;
  26.     match_branch_table[ORD('>')] := br_gt;
  27.     match_branch_table[ORD('(')] := br_lparen;
  28.     match_branch_table[ORD('<')] := br_lt;
  29.     match_branch_table[ORD('#')] := br_pound;
  30.     match_branch_table[ORD('+')] := br_plus;
  31.     match_branch_table[ORD('?')] := br_question;
  32.     match_branch_table[ORD('*')] := br_star;
  33.     match_branch_table[ORD('\')] := br_bslash;
  34.  
  35.     (*-----------------------------------------------------------------------*)
  36.     (* Character types                                                       *)
  37.     (*-----------------------------------------------------------------------*)
  38.  
  39.     FILLCHAR(match_strtab, SIZEOF(match_strtab), CHR($80));
  40.     (* 01 = special     *)
  41.     (* 02 = small a-z   *)
  42.     (* 04 = capital A-Z *)
  43.     (* 08 = numeric     *)
  44.     (* 20 = hex         *)
  45.     match_strtab[ORD(' ')] := CHR($40);
  46.     match_strtab[ORD('<')] := CHR($01);
  47.     match_strtab[ORD('+')] := CHR($01);
  48.     match_strtab[ORD('$')] := CHR($01);
  49.     match_strtab[ORD('*')] := CHR($01);
  50.     match_strtab[ORD('>')] := CHR($01);
  51.     match_strtab[ORD('?')] := CHR($01);
  52.     match_strtab[ORD('#')] := CHR($01);
  53.     match_strtab[ORD('@')] := CHR($01);
  54.     match_strtab[ORD('=')] := CHR($01);
  55.     match_strtab[ORD('"')] := CHR($01);
  56.     match_strtab[ORD('a')] := CHR($22);
  57.     match_strtab[ORD('b')] := CHR($22);
  58.     match_strtab[ORD('c')] := CHR($22);
  59.     match_strtab[ORD('d')] := CHR($22);
  60.     match_strtab[ORD('e')] := CHR($22);
  61.     match_strtab[ORD('f')] := CHR($22);
  62.     match_strtab[ORD('g')] := CHR($02);
  63.     match_strtab[ORD('h')] := CHR($02);
  64.     match_strtab[ORD('i')] := CHR($02);
  65.     match_strtab[ORD('j')] := CHR($02);
  66.     match_strtab[ORD('k')] := CHR($02);
  67.     match_strtab[ORD('l')] := CHR($02);
  68.     match_strtab[ORD('m')] := CHR($02);
  69.     match_strtab[ORD('n')] := CHR($02);
  70.     match_strtab[ORD('o')] := CHR($02);
  71.     match_strtab[ORD('p')] := CHR($02);
  72.     match_strtab[ORD('q')] := CHR($02);
  73.     match_strtab[ORD('r')] := CHR($02);
  74.     match_strtab[ORD('s')] := CHR($02);
  75.     match_strtab[ORD('t')] := CHR($02);
  76.     match_strtab[ORD('u')] := CHR($02);
  77.     match_strtab[ORD('v')] := CHR($02);
  78.     match_strtab[ORD('w')] := CHR($02);
  79.     match_strtab[ORD('x')] := CHR($02);
  80.     match_strtab[ORD('y')] := CHR($02);
  81.     match_strtab[ORD('z')] := CHR($02);
  82.     match_strtab[ORD('A')] := CHR($24);
  83.     match_strtab[ORD('B')] := CHR($24);
  84.     match_strtab[ORD('C')] := CHR($24);
  85.     match_strtab[ORD('D')] := CHR($24);
  86.     match_strtab[ORD('E')] := CHR($24);
  87.     match_strtab[ORD('F')] := CHR($24);
  88.     match_strtab[ORD('G')] := CHR($04);
  89.     match_strtab[ORD('H')] := CHR($04);
  90.     match_strtab[ORD('I')] := CHR($04);
  91.     match_strtab[ORD('J')] := CHR($04);
  92.     match_strtab[ORD('K')] := CHR($04);
  93.     match_strtab[ORD('L')] := CHR($04);
  94.     match_strtab[ORD('M')] := CHR($04);
  95.     match_strtab[ORD('N')] := CHR($04);
  96.     match_strtab[ORD('O')] := CHR($04);
  97.     match_strtab[ORD('P')] := CHR($04);
  98.     match_strtab[ORD('Q')] := CHR($04);
  99.     match_strtab[ORD('R')] := CHR($04);
  100.     match_strtab[ORD('S')] := CHR($04);
  101.     match_strtab[ORD('T')] := CHR($04);
  102.     match_strtab[ORD('U')] := CHR($04);
  103.     match_strtab[ORD('V')] := CHR($04);
  104.     match_strtab[ORD('W')] := CHR($04);
  105.     match_strtab[ORD('X')] := CHR($04);
  106.     match_strtab[ORD('Y')] := CHR($04);
  107.     match_strtab[ORD('Z')] := CHR($04);
  108.     match_strtab[ORD('0')] := CHR($28);
  109.     match_strtab[ORD('1')] := CHR($28);
  110.     match_strtab[ORD('2')] := CHR($28);
  111.     match_strtab[ORD('3')] := CHR($28);
  112.     match_strtab[ORD('4')] := CHR($28);
  113.     match_strtab[ORD('5')] := CHR($28);
  114.     match_strtab[ORD('6')] := CHR($28);
  115.     match_strtab[ORD('7')] := CHR($28);
  116.     match_strtab[ORD('8')] := CHR($28);
  117.     match_strtab[ORD('9')] := CHR($28);
  118.  
  119.   END;
  120.